// 定义全局音频管理器
let audioContext = {};
/**
 * 初始化音频管理器
 * @param {string} src 播放地址
 * @param {number} startTime 开始播放的位置（单位：s）
 * @param {boolean} autoplay 是否自动开始播放，默认为 false
 * @param {boolean} loop 是否循环播放，默认为 false
 * @param {number} volume 音量 范围 0 - 1 
 * @param {number} currentTime 当前音频的播放位置（单位 s）
 */
export function createAudioContext({src, startTime, autoplay, loop, volume, currentTime}){
	return new Promise(resolve => {
		// 先清空音频管理器
		audioContext = null;
		audioContext = wx.createInnerAudioContext();
		audioContext.src = src || '';
		audioContext.startTime = startTime || 0;
		audioContext.autoplay = autoplay || false;
		audioContext.loop = loop || false;
		audioContext.volume = volume || 1;
		audioContext.currentTime = currentTime || 0;
		resolve("createAudioContext:ok")
	})
}

/**
 * 播放音频
 */
export function playAudio() {
	return new Promise(resolve => {
		audioContext.play();
		resolve("playAudio:ok")

	})
}

/**
 * 暂停播放音频
 */
export function pauseAudio() {
	return new Promise(resolve => {
		audioContext.pause();
		resolve("pauseAudio:ok")

	})
}

/**
 * 从xxx开始播放音频
 * @param { number} position 位置 单位为s, 精确到小数点后3位,即毫秒级
 */
export function seekRecorder(position) {
	return new Promise(resolve => {
		// 若只是初始化，直接seek，音频不会自动播放，需要额外添加个play()
		audioContext.seek(position/1000);
		audioContext.play();
		resolve("seekRecorder:ok")
	})
}

/**
 * 停止播放音频
 */
export function stopAudio() {
	return new Promise(resolve => {
		audioContext.stop();
		resolve("stopAudio:ok")

	})
}

/**
 * 销毁实例
 */
export function destroyAudio() {
	return new Promise(resolve => {
		audioContext.destroy();
		resolve("destroyAudio:ok")
	})
}